package pers.xiqingbo.service;

import pers.xiqingbo.pojo.Book;
import pers.xiqingbo.pojo.Page;

import java.math.BigDecimal;
import java.util.List;

/**
 * @PackageName: pers.xiqingbo.service
 * @ClassName: BookService
 * @Description: Book业务逻辑层接口
 * @Author: Schieber
 * @Date: 2021/2/19 上午 9:54
 */
public interface BookService {
    /**
     * 添加图书业务
     *
     * @param book 添加的图书
     */
    public void addBook(Book book);

    /**
     * 删除图书业务
     *
     * @param id 删除图书的id
     */
    public void deleteBook(Integer id);

    /**
     * 修改图书业务
     *
     * @param book 修改的图书
     */
    public void updateBook(Book book);

    /**
     * 通过id查询图书
     *
     * @param id 查询图书的id
     * @return 返回查询到的图书
     */
    public Book queryBookById(Integer id);

    /**
     * 查询所有图书
     *
     * @return 返回所有图书列表
     */
    public List<Book> queryBooks();

    /**
     * 对图书进行分页的业务
     *
     * @param pageNo   当前页码
     * @param pageSize 页面显示数据的数量
     * @return 返回分页后的图书对象
     */
    public Page<Book> page(int pageNo, int pageSize);

    /**
     * 对通过价格查询后的图书进行分页
     *
     * @param min      查询价格时的最小价格
     * @param max      查询价格时的最大价格
     * @param pageNo   当前页码
     * @param pageSize 页面显示数据的数量
     * @return 返回通过价格分页后的图书对象
     */
    public Page<Book> pricePage(BigDecimal min, BigDecimal max, int pageNo, int pageSize);
}
